이 질문에 이미 답변이 있습니다. Python에서 문자열 반전 (29 답변) 4 년 전에 문을 닫았습니다. 문자열을 반전시키고 아래 코드를 사용하려고하는데 결과 반전 목록 값은 None입니다. 코드: str_a = '이것이 흔들립니다' rev_word = str_a.split () rev_word = rev_word.reverse () rev_word = ''.join (rev_word) TypeError를 반환합니다. 왜?
.reverse ()는 None을 반환합니다. 따라서 변수에 할당해서는 안됩니다. 대신 사용 : stra = '이것은 문자열입니다' revword = stra.split () revword.reverse () revword = ''. join (revword) 출력을 볼 수 있도록 IDEOne에서 코드를 실행했습니다. (또한 출력이 stringaisThis임을 확인하십시오. 대신 공백과 함께 ''.join (revword)를 사용할 수 있습니다.) 또한 제공 한 방법은 텍스트가 아닌 단어 만 반전합니다. @ ron.rothman은 전체 문자열을 뒤집는 방법을 자세히 설명하는 링크를 제공했습니다. | 이것은 문자열을 뒤집는 개인적으로 가장 좋아하는 방법입니다. stra = "이것은 문자열입니다" revword = stra [::-1] print (revword) # "한 번에 표시 또는 단어 순서를 바꾸려면 : revword = "".join (stra.split () [::-1]) print (revword) # "문자열 a는 이것입니다" :) | 문자열에 대한 다양한 반전 : instring = '이것은 문자열입니다' reversedstring = instring [::-1] reversedstring 인쇄 # gnirts a sihT wordsreversed = ''.join (word [::-1] for word instring.split ()) 인쇄 단어 반전 # sihT si a gnirts revwordorder = ''.join (instring.split () [::-1]의 단어에 대한 단어) print revwordorder # string a is This revwordandorder = ''.join (word [::-1] for word instring.split () [::-1]) print revwordandorder # gnirts a sihT | 객체에 [] .reverse ()와 같은 메소드가있을 때 나중에 참조 할 수 있도록 일반적으로 객체에 대해 해당 작업을 수행합니다 (즉, 목록이 정렬되고 아무것도 반환하지 않음, None). 객체를 반환하고 값 (예 : 정렬 된 목록)을 반환합니다. | >>> s = '이것은 문자열입니다' >>> s [::-1] '한숨을 쉬다' >>> ''.join (reversed (s)) '한숨을 쉬다' | for 루프는 끝 (마지막 문자)에서 시작 (첫 글자)까지 문자열을 반복합니다. >>> s = '이것도 시도해 볼 수 있습니다 :]' >>> rev = '' >>> 범위 (len (s)-1, -1, -1)에있는 i의 경우 : ... rev + = s [i] >>> rev '] : yrt nac uoY를 입력하세요.' | 의견 및 기타 답변을 기반으로 : str_a = '이것은 문자열입니다' rev_word = ''.join (reversed (str_a.split ())) 메서드 체이닝은 결국 파이썬에서 작동합니다 ... | 목록 반전은 여러 가지 방법을 사용하여 수행 할 수 있습니다. 이전 답변에서 언급했듯이 두 개는 매우 두드러집니다. 하나는 reverse () 함수이고 두 개는 슬라이싱 기능입니다. 나는 우리가 선호해야 할 것에 대한 통찰력을 제공하고 있습니다. 파이썬 목록의 반전을 위해 항상 reverse () 함수를 사용해야합니다. 두 가지 이유, 하나는 내부 반전이고 두 가지는 다른 것보다 빠릅니다. 내 대답을 뒷받침하는 몇 가지 수치가 있습니다. [15]에서 : len (l) 출력 [15] : 1000 [16]에서 : % timeit -n1 l.reverse () 루프 1 개, 최고 3 : 7.87 µs / 루프 [17]에서 : % timeit -n1 l [::-1] 루프 1 개, 최고 3 : 루프 당 10 µs 1000 정수 목록의 경우 reverse () 함수는 슬라이싱에 비해 더 나은 성능을 보였습니다. | 찾고있는 답변이 아닙니까? python 태그가 붙은 다른 질문을 찾아 보거나 직접 질문하십시오.